"""6.4 【上下文类】Context 消息回调类MCP开发"""
from time import sleep

from mcp.server.fastmcp import FastMCP,Context
from mcp.types import RequestParams

#创建mcp实例

mcp = FastMCP("Context MCP Server")

@mcp.tool()
async def message_tool(batch_list: list[str],ctx:Context):
    """
    同步服务器处理数据的进展情况
    :param batch_list: 批量数据
    :param ctx: 上下文类
    :return: 处理完成
    """
    print("========================日志回调类服务端开发=======================")
    for index,item in enumerate(batch_list):
       #设置请求头部
       ctx.request_context.meta= RequestParams.Meta(progressToken=ctx.request_id)
       #向客户端发送进度信息
       await ctx.report_progress(index+1,len(batch_list),f"正在处理第{index+1}条数据")
       sleep(1)
    return '处理完成'


if __name__ == '__main__':
    mcp.run(transport='sse')
